import 'tpl_build_sh.dart' as build_sh;
import 'tpl_main.dart' as main;
import 'tpl_app.dart' as app;
import 'tpl_widget_theme_builder.dart' as widget_theme_builder;
import 'tpl_debug_app_debug_model.dart' as debug_app_debug_model;
import 'tpl_route_main.dart' as route_main;
import 'tpl_utils_print_util.dart' as utils_print_util;
import 'tpl_utils_screen_util.dart' as utils_screen_util;
import 'tpl_utils_sys_error_util.dart' as utils_sys_error_util;
import 'tpl_pages_main_main_page.dart' as pages_main_main_page;
import 'tpl_debug_main.dart' as debug_main;
import 'tpl_debug_app_debug.dart' as debug_app_debug;
import 'tpl_debug_app_error_log.dart' as debug_app_error_log;
import 'tpl_store_user_user_state.dart' as store_user_user_state;
import 'tpl_store_theme_theme_state.dart' as store_theme_theme_state;
import 'tpl_store_app_state.dart' as store_app_state;
import 'tpl_api_interceptors_log_interceptors.dart'
    as api_interceptors_log_interceptors;
import 'tpl_api_entity_base_entity.dart' as api_entity_base_entity;
import 'tpl_api_entity_entity_factory.dart' as api_entity_entity_factory;
import 'tpl_api_interceptors_request_interceptors.dart'
    as api_interceptors_request_interceptors;
import 'tpl_api_interceptors_response_interceptors.dart'
    as api_interceptors_response_interceptors;
import 'tpl_api_manager_http_manager.dart' as api_manager_http_manager;
import 'tpl_api_transformer_transformer.dart' as api_transformer_transformer;
import 'tpl_api_api_factory.dart' as api_api_factory;
import 'tpl_api_api_interface.dart' as api_api_interface;
import 'tpl_utils_toast_util.dart' as utils_toast_util;
import 'tpl_mixin_base_binding_observer_mixin.dart'
    as mixin_base_binding_observer_mixin;
import 'tpl_mixin_base_widget_mixin.dart' as mixin_base_widget_mixin;
import 'tpl_l10n_intl_en.dart' as l10n_intl_en;
import 'tpl_l10n_intl_zh.dart' as l10n_intl_zh;
import 'tpl_generated_l10n.dart' as generated_l10n;
import 'tpl_generated_intl_messages_all.dart' as generated_intl_messages_all;
import 'tpl_generated_intl_messages_en.dart' as generated_intl_messages_en;
import 'tpl_generated_intl_messages_zh.dart' as generated_intl_messages_zh;

class FileInfo {
  final String filePath;
  final String Function({dynamic package}) codeBuild;

  const FileInfo({required this.filePath, required this.codeBuild});
}

class Tpl {
  static dynamic get buildSh => build_sh.clazzTpl;

  static List<FileInfo> get buildCode => [
        FileInfo(filePath: 'main.dart', codeBuild: main.clazzTpl),
        FileInfo(filePath: 'app.dart', codeBuild: app.clazzTpl),
        FileInfo(
            filePath: 'store/user/user_state.dart',
            codeBuild: store_user_user_state.clazzTpl),
        FileInfo(
            filePath: 'store/theme/theme_state.dart',
            codeBuild: store_theme_theme_state.clazzTpl),
        FileInfo(
            filePath: 'store/app_state.dart',
            codeBuild: store_app_state.clazzTpl),
        FileInfo(
            filePath: 'widget/theme_builder.dart',
            codeBuild: widget_theme_builder.clazzTpl),
        FileInfo(
            filePath: 'route/main.route.dart', codeBuild: route_main.clazzTpl),
        FileInfo(
            filePath: 'api/entity/base_entity.api.dart',
            codeBuild: api_entity_base_entity.clazzTpl),
        FileInfo(
            filePath: 'api/entity/entity_factory.entity.dart',
            codeBuild: api_entity_entity_factory.clazzTpl),
        FileInfo(
            filePath: 'api/interceptors/log_interceptors.api.dart',
            codeBuild: api_interceptors_log_interceptors.clazzTpl),
        FileInfo(
            filePath: 'api/interceptors/request_interceptors.api.dart',
            codeBuild: api_interceptors_request_interceptors.clazzTpl),
        FileInfo(
            filePath: 'api/interceptors/response_interceptors.api.dart',
            codeBuild: api_interceptors_response_interceptors.clazzTpl),
        FileInfo(
            filePath: 'api/manager/http_manager.api.dart',
            codeBuild: api_manager_http_manager.clazzTpl),
        FileInfo(
            filePath: 'api/transformer/transformer.dart',
            codeBuild: api_transformer_transformer.clazzTpl),
        FileInfo(
            filePath: 'api/api_factory.interface.dart',
            codeBuild: api_api_factory.clazzTpl),
        FileInfo(
            filePath: 'api/api_interface.api.dart',
            codeBuild: api_api_interface.clazzTpl),
        FileInfo(
            filePath: 'utils/print_util.dart',
            codeBuild: utils_print_util.clazzTpl),
        FileInfo(
            filePath: 'utils/screen_util.dart',
            codeBuild: utils_screen_util.clazzTpl),
        FileInfo(
            filePath: 'utils/toast_util.dart',
            codeBuild: utils_toast_util.clazzTpl),
        FileInfo(
            filePath: 'utils/sys_error_util.dart',
            codeBuild: utils_sys_error_util.clazzTpl),
        FileInfo(
            filePath: 'pages/main/main_page.dart',
            codeBuild: pages_main_main_page.clazzTpl),
        FileInfo(
            filePath: 'debug/app_debug_model.dart',
            codeBuild: debug_app_debug_model.clazzTpl),
        FileInfo(filePath: 'debug/main.dart', codeBuild: debug_main.clazzTpl),
        FileInfo(
            filePath: 'debug/app_debug.dart',
            codeBuild: debug_app_debug.clazzTpl),
        FileInfo(
            filePath: 'debug/app_error_log.dart',
            codeBuild: debug_app_error_log.clazzTpl),
        FileInfo(
            filePath: 'mixin/base_binding_observer_mixin.dart',
            codeBuild: mixin_base_binding_observer_mixin.clazzTpl),
        FileInfo(
            filePath: 'mixin/base_widget_mixin.dart',
            codeBuild: mixin_base_widget_mixin.clazzTpl),
        FileInfo(
            filePath: 'l10n/intl_en.arb', codeBuild: l10n_intl_en.clazzTpl),
        FileInfo(
            filePath: 'l10n/intl_zh.arb', codeBuild: l10n_intl_zh.clazzTpl),
        FileInfo(
            filePath: 'generated/l10n.dart',
            codeBuild: generated_l10n.clazzTpl),
        FileInfo(
            filePath: 'generated/intl/messages_all.dart',
            codeBuild: generated_intl_messages_all.clazzTpl),
        FileInfo(
            filePath: 'generated/intl/messages_en.dart',
            codeBuild: generated_intl_messages_en.clazzTpl),
        FileInfo(
            filePath: 'generated/intl/messages_zh.dart',
            codeBuild: generated_intl_messages_zh.clazzTpl),
      ];
}
